using SmartLink.Domain.Entity;
using SmartLink.Domain.ExpandEntity;
using SmartLink.DTOS;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SmartLink.Domain.IServices
{
    /// <summary>
    /// 系统功能模块
    /// </summary>
    public interface ISysModuleServices
    {
        #region 模块操作
        OperationResult AddModule(SYS_Module entity);
        OperationResult UpdateModule(SYS_Module entity);
        OperationResult DeleteModule(int id);
        SYS_Module GetModule(int id);
        IEnumerable<SYS_Module> GetAllModule();
        IEnumerable<SysModuleExpand> GetAllWithRelation();
        IEnumerable<SYS_Module> GetModuleChildren(int parenntId);
        #endregion
        #region 模块功能项操作
        OperationResult AddFunction(SYS_ModuleFunction entity);
        OperationResult UpdateFunction(SYS_ModuleFunction entity);
        OperationResult DeleteFunction(int id);
        SYS_ModuleFunction GetFunction(int id);
        IEnumerable<SYS_ModuleFunction> GetModuleFunctions(string moduleCode);
        IEnumerable<SYS_ModuleFunction> GetAllFunction();
        #endregion
    }
}
